package com.leo.ibatis.demo.service.impl;

import java.util.List;

import com.leo.ibatis.demo.base.Service;
import com.leo.ibatis.demo.criteria.ProfileCriteria;
import com.leo.ibatis.demo.dao.ProfileDao;
import com.leo.ibatis.demo.domain.Profile;
import com.leo.ibatis.demo.service.ProfileService;

public class ProfileServiceImpl extends Service implements ProfileService {

	private ProfileDao profileDao;

	public void setProfileDao(ProfileDao profileDao) {
		this.profileDao = profileDao;
	}

	public void insert(Profile profile) {
		profileDao.insert(profile);
	}

	public int update(Profile profile) {
		int actualRowsAffected = 0;
		
		String userid = profile.getUserid();

		Profile _oldProfile = profileDao.select(userid);
		
		if (_oldProfile != null) {
			actualRowsAffected = profileDao.update(profile);
		}
		
		return actualRowsAffected;
	}

	public int delete(String userid) {
		int actualRowsAffected = 0;
		
		Profile _oldProfile = profileDao.select(userid);
		
		if (_oldProfile != null) {
			actualRowsAffected = profileDao.delete(userid);
		}
		
		return actualRowsAffected;
	}
	
	public Profile select(String userid) {
		return profileDao.select(userid);
	}

	public List<Profile> list(ProfileCriteria profileCriteria) {
		return profileDao.list(profileCriteria);
	}
	
	public List<Profile> listOnPage(ProfileCriteria profileCriteria) {
		return profileDao.listOnPage(profileCriteria);
	}

}
